#ifndef IProduct_H
#define IProduct_H
class IProductA{
public:
	virtual ~IProductA() = 0;

protected:
	IProductA();

private:
};

class IProductB{
public:
	virtual ~IProductB() = 0;

protected:
	IProductB();

private:
};

class ConcreteProductA1: public IProductA{
public:
	ConcreteProductA1();
	~ConcreteProductA1();
protected:

private:
};
class ConcreteProductA2: public IProductA{
public:
	ConcreteProductA2();
	~ConcreteProductA2();
protected:

private:
};

class ConcreteProductB1: public IProductB{
public:
	ConcreteProductB1();
	~ConcreteProductB1();
protected:

private:
};
class ConcreteProductB2: public IProductB{
public:
	ConcreteProductB2();
	~ConcreteProductB2();
protected:

private:
};
#endif
